package gui;

import java.io.Serializable;
import java.util.Vector;

public class Grafico implements Serializable {

	private Vector<Double> x = new Vector<Double>();

	private Vector<Double> y = new Vector<Double>();

	public double maior = 0;

	int ind_maior = 0;

	double menor = 0;

	int ind_menor = 0;

	String tituloGrafico;

	String textoOrdenada = "Tempo";

	String textoAbscissa = "Entrada";

	String unidadeX = "N";

	String unidadeY = "Milisegundos";

	double escalaMostraX = 1;

	double escalaMostraY = 1;

	public Grafico() {

	}

	public Grafico(String titulo) {
		tituloGrafico = titulo;
	}

	public void addElement(double valorY) {
		if (y.size() == 0) {
			menor = valorY;
			ind_menor = 0;
		}
		if (valorY > maior) {
			maior = valorY;
			ind_maior = y.size();
		}
		if (valorY < menor) {
			menor = valorY;
			ind_menor = y.size();
		}
		x.addElement(new Double(y.size()));
		y.addElement(valorY);
	}

	public void addElement(double valorX, double valorY) {
		if (y.size() == 0) {
			menor = valorY;
			ind_menor = 0;
		}
		if (valorY > maior) {
			maior = valorY;
			ind_maior = y.size();
		}
		if (valorY < menor) {
			menor = valorY;
			ind_menor = y.size();
		}
		x.addElement(valorX);
		y.addElement(valorY);
	}

	public boolean ehValido(int indice) {
		return (indice >= 0 && indice < size());
	}

	public int size() {
		return y.size();
	}

	public double deltaX() {
		return x.lastElement() - x.firstElement();
	}

	public double getY(int indice) {
		return y.elementAt(indice);
	}

	public int getIndiceX(double valor) {
		for (int i = 1; i < this.size(); i++) {
			if (valor >= this.getX(i - 1) && valor < this.getX(i) / 2)
				return i - 1;
			if (valor >= this.getX(i) / 2 && valor <= this.getX(i))
				return i;
		}
		return -1;
	}

	public double getPrimeiroX() {
		return x.firstElement();
	}

	public double getPrimeiroY() {
		return y.firstElement();
	}

	public double getUltimoY() {
		return y.lastElement();
	}

	public double getUltimoX() {
		return x.lastElement();
	}

	public double getX(int i) {
		return x.elementAt(i);
	}
	
/*	
	
	public double[] xToArray(){
		double[] xs = new double[x.size()];
		for (int i = 0 ; i < xs.length; i++) {
			xs[i] = x.get(i);
		}
		return xs;
	}
	

	public double[] yToArray(){
		double[] ys = new double[y.size()];
		for (int i = 0 ; i < ys.length; i++) {
			ys[i] = y.get(i);
		}
		return ys;
	}
*/	
	
	
}
